/*******************************************************************************
 * Copyright (c) 2022 BestSolution.at and others.
 *  
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v.2.0 which is available at
 * https://www.eclipse.org/legal/epl-2.0.
 *  
 * SPDX-License-Identifier: EPL-2.0
 *  
 * Contributors:
 *     BestSolution.at - initial API and implementation
 *******************************************************************************/
/*
 * generated by Xtext
 */
package org.eclipse.fx.ide.css.cssext.services;

import com.google.inject.Singleton;
import com.google.inject.Inject;

import java.util.List;

import org.eclipse.xtext.*;
import org.eclipse.xtext.service.GrammarProvider;
import org.eclipse.xtext.service.AbstractElementFinder.*;

import org.eclipse.xtext.common.services.TerminalsGrammarAccess;

@Singleton
public class CssExtDslGrammarAccess extends AbstractGrammarElementFinder {
	
	
	public class CssExtensionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CssExtension");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cImportsAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cImportsImportParserRuleCall_0_0 = (RuleCall)cImportsAssignment_0.eContents().get(0);
		private final Assignment cPackageDefAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cPackageDefPackageDefinitionParserRuleCall_1_0 = (RuleCall)cPackageDefAssignment_1.eContents().get(0);
		
		//CssExtension:
		//	imports+=Import*
		//	packageDef=PackageDefinition?
		//	//	packageDef=PackageDefinition?
		//	//	rule=CSSRuleSet
		//;
		@Override public ParserRule getRule() { return rule; }

		//imports+=Import* packageDef=PackageDefinition?
		public Group getGroup() { return cGroup; }

		//imports+=Import*
		public Assignment getImportsAssignment_0() { return cImportsAssignment_0; }

		//Import
		public RuleCall getImportsImportParserRuleCall_0_0() { return cImportsImportParserRuleCall_0_0; }

		//packageDef=PackageDefinition?
		public Assignment getPackageDefAssignment_1() { return cPackageDefAssignment_1; }

		//PackageDefinition
		public RuleCall getPackageDefPackageDefinitionParserRuleCall_1_0() { return cPackageDefPackageDefinitionParserRuleCall_1_0; }
	}

	public class ImportElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.Import");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cImportedNamespaceAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
		
		//Import:
		//	'import' importedNamespace=QualifiedNameWithWildCard;
		@Override public ParserRule getRule() { return rule; }

		//'import' importedNamespace=QualifiedNameWithWildCard
		public Group getGroup() { return cGroup; }

		//'import'
		public Keyword getImportKeyword_0() { return cImportKeyword_0; }

		//importedNamespace=QualifiedNameWithWildCard
		public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }

		//QualifiedNameWithWildCard
		public RuleCall getImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0() { return cImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0; }
	}

	public class ValidIDElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.ValidID");
		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
		
		//ValidID:
		//	ID;
		@Override public ParserRule getRule() { return rule; }

		//ID
		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
	}

	public class QualifiedNameElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.QualifiedName");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cValidIDParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final RuleCall cValidIDParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
		
		//QualifiedName:
		//	ValidID (=> '.' ValidID)*;
		@Override public ParserRule getRule() { return rule; }

		//ValidID (=> '.' ValidID)*
		public Group getGroup() { return cGroup; }

		//ValidID
		public RuleCall getValidIDParserRuleCall_0() { return cValidIDParserRuleCall_0; }

		//(=> '.' ValidID)*
		public Group getGroup_1() { return cGroup_1; }

		//=> '.'
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//ValidID
		public RuleCall getValidIDParserRuleCall_1_1() { return cValidIDParserRuleCall_1_1; }
	}

	public class QualifiedNameWithWildCardElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.QualifiedNameWithWildCard");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cQualifiedNameParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Keyword cAsteriskKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
		
		//QualifiedNameWithWildCard:
		//	QualifiedName ('.' '*')?;
		@Override public ParserRule getRule() { return rule; }

		//QualifiedName ('.' '*')?
		public Group getGroup() { return cGroup; }

		//QualifiedName
		public RuleCall getQualifiedNameParserRuleCall_0() { return cQualifiedNameParserRuleCall_0; }

		//('.' '*')?
		public Group getGroup_1() { return cGroup_1; }

		//'.'
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//'*'
		public Keyword getAsteriskKeyword_1_1() { return cAsteriskKeyword_1_1; }
	}

	public class PackageDefinitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.PackageDefinition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
		private final Assignment cDokuAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
		private final RuleCall cDokuDokuParserRuleCall_0_0_0 = (RuleCall)cDokuAssignment_0_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_0_1 = (RuleCall)cGroup_0.eContents().get(1);
		private final Keyword cPackageKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4);
		private final Assignment cRulesAssignment_4_0 = (Assignment)cAlternatives_4.eContents().get(0);
		private final RuleCall cRulesCSSRuleDefinitionParserRuleCall_4_0_0 = (RuleCall)cRulesAssignment_4_0.eContents().get(0);
		private final Assignment cSubpackagesAssignment_4_1 = (Assignment)cAlternatives_4.eContents().get(1);
		private final RuleCall cSubpackagesPackageDefinitionParserRuleCall_4_1_0 = (RuleCall)cSubpackagesAssignment_4_1.eContents().get(0);
		private final Assignment cElementsAssignment_4_2 = (Assignment)cAlternatives_4.eContents().get(2);
		private final RuleCall cElementsElementDefinitionParserRuleCall_4_2_0 = (RuleCall)cElementsAssignment_4_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//PackageDefinition:
		//	(doku=Doku WS*)?
		//	'package' name=QualifiedName
		//	'{' (rules+=CSSRuleDefinition | subpackages+=PackageDefinition | elements+=ElementDefinition)*
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//(doku=Doku WS*)? 'package' name=QualifiedName '{' (rules+=CSSRuleDefinition | subpackages+=PackageDefinition |
		//elements+=ElementDefinition)* '}'
		public Group getGroup() { return cGroup; }

		//(doku=Doku WS*)?
		public Group getGroup_0() { return cGroup_0; }

		//doku=Doku
		public Assignment getDokuAssignment_0_0() { return cDokuAssignment_0_0; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_0_0_0() { return cDokuDokuParserRuleCall_0_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_0_1() { return cWSTerminalRuleCall_0_1; }

		//'package'
		public Keyword getPackageKeyword_1() { return cPackageKeyword_1; }

		//name=QualifiedName
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//(rules+=CSSRuleDefinition | subpackages+=PackageDefinition | elements+=ElementDefinition)*
		public Alternatives getAlternatives_4() { return cAlternatives_4; }

		//rules+=CSSRuleDefinition
		public Assignment getRulesAssignment_4_0() { return cRulesAssignment_4_0; }

		//CSSRuleDefinition
		public RuleCall getRulesCSSRuleDefinitionParserRuleCall_4_0_0() { return cRulesCSSRuleDefinitionParserRuleCall_4_0_0; }

		//subpackages+=PackageDefinition
		public Assignment getSubpackagesAssignment_4_1() { return cSubpackagesAssignment_4_1; }

		//PackageDefinition
		public RuleCall getSubpackagesPackageDefinitionParserRuleCall_4_1_0() { return cSubpackagesPackageDefinitionParserRuleCall_4_1_0; }

		//elements+=ElementDefinition
		public Assignment getElementsAssignment_4_2() { return cElementsAssignment_4_2; }

		//ElementDefinition
		public RuleCall getElementsElementDefinitionParserRuleCall_4_2_0() { return cElementsElementDefinitionParserRuleCall_4_2_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class DokuElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.Doku");
		private final Assignment cContentAssignment = (Assignment)rule.eContents().get(1);
		private final RuleCall cContentJDOCTerminalRuleCall_0 = (RuleCall)cContentAssignment.eContents().get(0);
		
		//Doku:
		//	content=JDOC;
		@Override public ParserRule getRule() { return rule; }

		//content=JDOC
		public Assignment getContentAssignment() { return cContentAssignment; }

		//JDOC
		public RuleCall getContentJDOCTerminalRuleCall_0() { return cContentJDOCTerminalRuleCall_0; }
	}

	public class CSSBaseTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSBaseType");
		private final RuleCall cCSSTypeParserRuleCall = (RuleCall)rule.eContents().get(1);
		
		//CSSBaseType CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
		//	CSSType;
		@Override public ParserRule getRule() { return rule; }

		//CSSType
		public RuleCall getCSSTypeParserRuleCall() { return cCSSTypeParserRuleCall; }
	}

	public class CSSTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
		private final Action cCSSRangedIntTypeAction_0_0 = (Action)cGroup_0.eContents().get(0);
		private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1);
		private final Assignment cDokuAssignment_0_1_0 = (Assignment)cGroup_0_1.eContents().get(0);
		private final RuleCall cDokuDokuParserRuleCall_0_1_0_0 = (RuleCall)cDokuAssignment_0_1_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_0_1_1 = (RuleCall)cGroup_0_1.eContents().get(1);
		private final Assignment cTypeAssignment_0_2 = (Assignment)cGroup_0.eContents().get(2);
		private final Keyword cTypeINTKeyword_0_2_0 = (Keyword)cTypeAssignment_0_2.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_0_3 = (Keyword)cGroup_0.eContents().get(3);
		private final RuleCall cWSTerminalRuleCall_0_4 = (RuleCall)cGroup_0.eContents().get(4);
		private final Assignment cFromAssignment_0_5 = (Assignment)cGroup_0.eContents().get(5);
		private final RuleCall cFromINTTerminalRuleCall_0_5_0 = (RuleCall)cFromAssignment_0_5.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_0_6 = (RuleCall)cGroup_0.eContents().get(6);
		private final Keyword cHyphenMinusGreaterThanSignKeyword_0_7 = (Keyword)cGroup_0.eContents().get(7);
		private final RuleCall cWSTerminalRuleCall_0_8 = (RuleCall)cGroup_0.eContents().get(8);
		private final Assignment cToAssignment_0_9 = (Assignment)cGroup_0.eContents().get(9);
		private final RuleCall cToINTTerminalRuleCall_0_9_0 = (RuleCall)cToAssignment_0_9.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_0_10 = (RuleCall)cGroup_0.eContents().get(10);
		private final Keyword cRightParenthesisKeyword_0_11 = (Keyword)cGroup_0.eContents().get(11);
		private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
		private final Action cCSSRangedDoubleTypeAction_1_0 = (Action)cGroup_1.eContents().get(0);
		private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
		private final Assignment cDokuAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0);
		private final RuleCall cDokuDokuParserRuleCall_1_1_0_0 = (RuleCall)cDokuAssignment_1_1_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_1_1_1 = (RuleCall)cGroup_1_1.eContents().get(1);
		private final Assignment cTypeAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
		private final Keyword cTypeNUMKeyword_1_2_0 = (Keyword)cTypeAssignment_1_2.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1_3 = (Keyword)cGroup_1.eContents().get(3);
		private final RuleCall cWSTerminalRuleCall_1_4 = (RuleCall)cGroup_1.eContents().get(4);
		private final Assignment cFromAssignment_1_5 = (Assignment)cGroup_1.eContents().get(5);
		private final RuleCall cFromDOUBLETerminalRuleCall_1_5_0 = (RuleCall)cFromAssignment_1_5.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_1_6 = (RuleCall)cGroup_1.eContents().get(6);
		private final Keyword cHyphenMinusGreaterThanSignKeyword_1_7 = (Keyword)cGroup_1.eContents().get(7);
		private final RuleCall cWSTerminalRuleCall_1_8 = (RuleCall)cGroup_1.eContents().get(8);
		private final Assignment cToAssignment_1_9 = (Assignment)cGroup_1.eContents().get(9);
		private final RuleCall cToDOUBLETerminalRuleCall_1_9_0 = (RuleCall)cToAssignment_1_9.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_1_10 = (RuleCall)cGroup_1.eContents().get(10);
		private final Keyword cRightParenthesisKeyword_1_11 = (Keyword)cGroup_1.eContents().get(11);
		private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2);
		private final Group cGroup_2_0 = (Group)cGroup_2.eContents().get(0);
		private final Assignment cDokuAssignment_2_0_0 = (Assignment)cGroup_2_0.eContents().get(0);
		private final RuleCall cDokuDokuParserRuleCall_2_0_0_0 = (RuleCall)cDokuAssignment_2_0_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_2_0_1 = (RuleCall)cGroup_2_0.eContents().get(1);
		private final Alternatives cAlternatives_2_1 = (Alternatives)cGroup_2.eContents().get(1);
		private final Group cGroup_2_1_0 = (Group)cAlternatives_2_1.eContents().get(0);
		private final Assignment cTypeAssignment_2_1_0_0 = (Assignment)cGroup_2_1_0.eContents().get(0);
		private final Keyword cTypeINTKeyword_2_1_0_0_0 = (Keyword)cTypeAssignment_2_1_0_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_2_1_0_1 = (RuleCall)cGroup_2_1_0.eContents().get(1);
		private final Group cGroup_2_1_1 = (Group)cAlternatives_2_1.eContents().get(1);
		private final Assignment cTypeAssignment_2_1_1_0 = (Assignment)cGroup_2_1_1.eContents().get(0);
		private final Keyword cTypeNUMKeyword_2_1_1_0_0 = (Keyword)cTypeAssignment_2_1_1_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_2_1_1_1 = (RuleCall)cGroup_2_1_1.eContents().get(1);
		private final Group cGroup_2_1_2 = (Group)cAlternatives_2_1.eContents().get(2);
		private final Assignment cTypeAssignment_2_1_2_0 = (Assignment)cGroup_2_1_2.eContents().get(0);
		private final Keyword cTypeSTRINGKeyword_2_1_2_0_0 = (Keyword)cTypeAssignment_2_1_2_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_2_1_2_1 = (RuleCall)cGroup_2_1_2.eContents().get(1);
		private final Group cGroup_2_1_3 = (Group)cAlternatives_2_1.eContents().get(3);
		private final Assignment cTypeAssignment_2_1_3_0 = (Assignment)cGroup_2_1_3.eContents().get(0);
		private final Keyword cTypeURLKeyword_2_1_3_0_0 = (Keyword)cTypeAssignment_2_1_3_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_2_1_3_1 = (RuleCall)cGroup_2_1_3.eContents().get(1);
		
		//CSSType hidden(SL_COMMENT, ML_COMMENT):
		//	{CSSRangedIntType} (doku=Doku WS*)? type='@INT' '(' WS* from=INT WS* '->' WS* to=INT WS* ')' | {CSSRangedDoubleType}
		//	(doku=Doku WS*)? type='@NUM' '(' WS* from=DOUBLE WS* '->' WS* to=DOUBLE WS* ')' | (doku=Doku WS*)? (type='@INT' WS* |
		//	type='@NUM' WS* | type='@STRING' WS* | type='@URL' WS*);
		@Override public ParserRule getRule() { return rule; }

		//{CSSRangedIntType} (doku=Doku WS*)? type='@INT' '(' WS* from=INT WS* '->' WS* to=INT WS* ')' | {CSSRangedDoubleType}
		//(doku=Doku WS*)? type='@NUM' '(' WS* from=DOUBLE WS* '->' WS* to=DOUBLE WS* ')' | (doku=Doku WS*)? (type='@INT' WS* |
		//type='@NUM' WS* | type='@STRING' WS* | type='@URL' WS*)
		public Alternatives getAlternatives() { return cAlternatives; }

		//{CSSRangedIntType} (doku=Doku WS*)? type='@INT' '(' WS* from=INT WS* '->' WS* to=INT WS* ')'
		public Group getGroup_0() { return cGroup_0; }

		//{CSSRangedIntType}
		public Action getCSSRangedIntTypeAction_0_0() { return cCSSRangedIntTypeAction_0_0; }

		//(doku=Doku WS*)?
		public Group getGroup_0_1() { return cGroup_0_1; }

		//doku=Doku
		public Assignment getDokuAssignment_0_1_0() { return cDokuAssignment_0_1_0; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_0_1_0_0() { return cDokuDokuParserRuleCall_0_1_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_0_1_1() { return cWSTerminalRuleCall_0_1_1; }

		//type='@INT'
		public Assignment getTypeAssignment_0_2() { return cTypeAssignment_0_2; }

		//'@INT'
		public Keyword getTypeINTKeyword_0_2_0() { return cTypeINTKeyword_0_2_0; }

		//'('
		public Keyword getLeftParenthesisKeyword_0_3() { return cLeftParenthesisKeyword_0_3; }

		//WS*
		public RuleCall getWSTerminalRuleCall_0_4() { return cWSTerminalRuleCall_0_4; }

		//from=INT
		public Assignment getFromAssignment_0_5() { return cFromAssignment_0_5; }

		//INT
		public RuleCall getFromINTTerminalRuleCall_0_5_0() { return cFromINTTerminalRuleCall_0_5_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_0_6() { return cWSTerminalRuleCall_0_6; }

		//'->'
		public Keyword getHyphenMinusGreaterThanSignKeyword_0_7() { return cHyphenMinusGreaterThanSignKeyword_0_7; }

		//WS*
		public RuleCall getWSTerminalRuleCall_0_8() { return cWSTerminalRuleCall_0_8; }

		//to=INT
		public Assignment getToAssignment_0_9() { return cToAssignment_0_9; }

		//INT
		public RuleCall getToINTTerminalRuleCall_0_9_0() { return cToINTTerminalRuleCall_0_9_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_0_10() { return cWSTerminalRuleCall_0_10; }

		//')'
		public Keyword getRightParenthesisKeyword_0_11() { return cRightParenthesisKeyword_0_11; }

		//{CSSRangedDoubleType} (doku=Doku WS*)? type='@NUM' '(' WS* from=DOUBLE WS* '->' WS* to=DOUBLE WS* ')'
		public Group getGroup_1() { return cGroup_1; }

		//{CSSRangedDoubleType}
		public Action getCSSRangedDoubleTypeAction_1_0() { return cCSSRangedDoubleTypeAction_1_0; }

		//(doku=Doku WS*)?
		public Group getGroup_1_1() { return cGroup_1_1; }

		//doku=Doku
		public Assignment getDokuAssignment_1_1_0() { return cDokuAssignment_1_1_0; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_1_1_0_0() { return cDokuDokuParserRuleCall_1_1_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_1_1_1() { return cWSTerminalRuleCall_1_1_1; }

		//type='@NUM'
		public Assignment getTypeAssignment_1_2() { return cTypeAssignment_1_2; }

		//'@NUM'
		public Keyword getTypeNUMKeyword_1_2_0() { return cTypeNUMKeyword_1_2_0; }

		//'('
		public Keyword getLeftParenthesisKeyword_1_3() { return cLeftParenthesisKeyword_1_3; }

		//WS*
		public RuleCall getWSTerminalRuleCall_1_4() { return cWSTerminalRuleCall_1_4; }

		//from=DOUBLE
		public Assignment getFromAssignment_1_5() { return cFromAssignment_1_5; }

		//DOUBLE
		public RuleCall getFromDOUBLETerminalRuleCall_1_5_0() { return cFromDOUBLETerminalRuleCall_1_5_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_1_6() { return cWSTerminalRuleCall_1_6; }

		//'->'
		public Keyword getHyphenMinusGreaterThanSignKeyword_1_7() { return cHyphenMinusGreaterThanSignKeyword_1_7; }

		//WS*
		public RuleCall getWSTerminalRuleCall_1_8() { return cWSTerminalRuleCall_1_8; }

		//to=DOUBLE
		public Assignment getToAssignment_1_9() { return cToAssignment_1_9; }

		//DOUBLE
		public RuleCall getToDOUBLETerminalRuleCall_1_9_0() { return cToDOUBLETerminalRuleCall_1_9_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_1_10() { return cWSTerminalRuleCall_1_10; }

		//')'
		public Keyword getRightParenthesisKeyword_1_11() { return cRightParenthesisKeyword_1_11; }

		//(doku=Doku WS*)? (type='@INT' WS* | type='@NUM' WS* | type='@STRING' WS* | type='@URL' WS*)
		public Group getGroup_2() { return cGroup_2; }

		//(doku=Doku WS*)?
		public Group getGroup_2_0() { return cGroup_2_0; }

		//doku=Doku
		public Assignment getDokuAssignment_2_0_0() { return cDokuAssignment_2_0_0; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_2_0_0_0() { return cDokuDokuParserRuleCall_2_0_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_2_0_1() { return cWSTerminalRuleCall_2_0_1; }

		//type='@INT' WS* | type='@NUM' WS* | type='@STRING' WS* | type='@URL' WS*
		public Alternatives getAlternatives_2_1() { return cAlternatives_2_1; }

		//type='@INT' WS*
		public Group getGroup_2_1_0() { return cGroup_2_1_0; }

		//type='@INT'
		public Assignment getTypeAssignment_2_1_0_0() { return cTypeAssignment_2_1_0_0; }

		//'@INT'
		public Keyword getTypeINTKeyword_2_1_0_0_0() { return cTypeINTKeyword_2_1_0_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_2_1_0_1() { return cWSTerminalRuleCall_2_1_0_1; }

		//type='@NUM' WS*
		public Group getGroup_2_1_1() { return cGroup_2_1_1; }

		//type='@NUM'
		public Assignment getTypeAssignment_2_1_1_0() { return cTypeAssignment_2_1_1_0; }

		//'@NUM'
		public Keyword getTypeNUMKeyword_2_1_1_0_0() { return cTypeNUMKeyword_2_1_1_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_2_1_1_1() { return cWSTerminalRuleCall_2_1_1_1; }

		//type='@STRING' WS*
		public Group getGroup_2_1_2() { return cGroup_2_1_2; }

		//type='@STRING'
		public Assignment getTypeAssignment_2_1_2_0() { return cTypeAssignment_2_1_2_0; }

		//'@STRING'
		public Keyword getTypeSTRINGKeyword_2_1_2_0_0() { return cTypeSTRINGKeyword_2_1_2_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_2_1_2_1() { return cWSTerminalRuleCall_2_1_2_1; }

		//type='@URL' WS*
		public Group getGroup_2_1_3() { return cGroup_2_1_3; }

		//type='@URL'
		public Assignment getTypeAssignment_2_1_3_0() { return cTypeAssignment_2_1_3_0; }

		//'@URL'
		public Keyword getTypeURLKeyword_2_1_3_0_0() { return cTypeURLKeyword_2_1_3_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_2_1_3_1() { return cWSTerminalRuleCall_2_1_3_1; }
	}

	public class ElementDefinitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.ElementDefinition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cElementDefinitionAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cDokuAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cDokuDokuParserRuleCall_1_0 = (RuleCall)cDokuAssignment_1.eContents().get(0);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cSuperAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cSuperElementDefinitionCrossReference_3_1_0 = (CrossReference)cSuperAssignment_3_1.eContents().get(0);
		private final RuleCall cSuperElementDefinitionQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSuperElementDefinitionCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
		private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
		private final Assignment cSuperAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
		private final CrossReference cSuperElementDefinitionCrossReference_3_2_1_0 = (CrossReference)cSuperAssignment_3_2_1.eContents().get(0);
		private final RuleCall cSuperElementDefinitionQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSuperElementDefinitionCrossReference_3_2_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cStyleclassKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cStyleclassAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cStyleclassIDTerminalRuleCall_4_1_0 = (RuleCall)cStyleclassAssignment_4_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Alternatives cAlternatives_6 = (Alternatives)cGroup.eContents().get(6);
		private final Assignment cPropertiesAssignment_6_0 = (Assignment)cAlternatives_6.eContents().get(0);
		private final RuleCall cPropertiesPropertyDefinitionParserRuleCall_6_0_0 = (RuleCall)cPropertiesAssignment_6_0.eContents().get(0);
		private final Assignment cPseudoClassesAssignment_6_1 = (Assignment)cAlternatives_6.eContents().get(1);
		private final RuleCall cPseudoClassesPseudoClassDefinitionParserRuleCall_6_1_0 = (RuleCall)cPseudoClassesAssignment_6_1.eContents().get(0);
		private final Assignment cSubstructuresAssignment_6_2 = (Assignment)cAlternatives_6.eContents().get(2);
		private final RuleCall cSubstructuresSubstructureParserRuleCall_6_2_0 = (RuleCall)cSubstructuresAssignment_6_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		////CSSRangedType returns CSSRule hidden(SL_COMMENT, ML_COMMENT):
		////	
		////;
		//ElementDefinition:
		//	{ElementDefinition} doku=Doku?
		//	name=QualifiedName ('extends' super+=[ElementDefinition|QualifiedName] (','
		//	super+=[ElementDefinition|QualifiedName])*)? ('styleclass' styleclass=ID)?
		//	'{' (properties+=PropertyDefinition | pseudoClasses+=PseudoClassDefinition | substructures+=Substructure)*
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{ElementDefinition} doku=Doku? name=QualifiedName ('extends' super+=[ElementDefinition|QualifiedName] (','
		//super+=[ElementDefinition|QualifiedName])*)? ('styleclass' styleclass=ID)? '{' (properties+=PropertyDefinition |
		//pseudoClasses+=PseudoClassDefinition | substructures+=Substructure)* '}'
		public Group getGroup() { return cGroup; }

		//{ElementDefinition}
		public Action getElementDefinitionAction_0() { return cElementDefinitionAction_0; }

		//doku=Doku?
		public Assignment getDokuAssignment_1() { return cDokuAssignment_1; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_1_0() { return cDokuDokuParserRuleCall_1_0; }

		//name=QualifiedName
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }

		//('extends' super+=[ElementDefinition|QualifiedName] (',' super+=[ElementDefinition|QualifiedName])*)?
		public Group getGroup_3() { return cGroup_3; }

		//'extends'
		public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; }

		//super+=[ElementDefinition|QualifiedName]
		public Assignment getSuperAssignment_3_1() { return cSuperAssignment_3_1; }

		//[ElementDefinition|QualifiedName]
		public CrossReference getSuperElementDefinitionCrossReference_3_1_0() { return cSuperElementDefinitionCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getSuperElementDefinitionQualifiedNameParserRuleCall_3_1_0_1() { return cSuperElementDefinitionQualifiedNameParserRuleCall_3_1_0_1; }

		//(',' super+=[ElementDefinition|QualifiedName])*
		public Group getGroup_3_2() { return cGroup_3_2; }

		//','
		public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }

		//super+=[ElementDefinition|QualifiedName]
		public Assignment getSuperAssignment_3_2_1() { return cSuperAssignment_3_2_1; }

		//[ElementDefinition|QualifiedName]
		public CrossReference getSuperElementDefinitionCrossReference_3_2_1_0() { return cSuperElementDefinitionCrossReference_3_2_1_0; }

		//QualifiedName
		public RuleCall getSuperElementDefinitionQualifiedNameParserRuleCall_3_2_1_0_1() { return cSuperElementDefinitionQualifiedNameParserRuleCall_3_2_1_0_1; }

		//('styleclass' styleclass=ID)?
		public Group getGroup_4() { return cGroup_4; }

		//'styleclass'
		public Keyword getStyleclassKeyword_4_0() { return cStyleclassKeyword_4_0; }

		//styleclass=ID
		public Assignment getStyleclassAssignment_4_1() { return cStyleclassAssignment_4_1; }

		//ID
		public RuleCall getStyleclassIDTerminalRuleCall_4_1_0() { return cStyleclassIDTerminalRuleCall_4_1_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_5() { return cLeftCurlyBracketKeyword_5; }

		//(properties+=PropertyDefinition | pseudoClasses+=PseudoClassDefinition | substructures+=Substructure)*
		public Alternatives getAlternatives_6() { return cAlternatives_6; }

		//properties+=PropertyDefinition
		public Assignment getPropertiesAssignment_6_0() { return cPropertiesAssignment_6_0; }

		//PropertyDefinition
		public RuleCall getPropertiesPropertyDefinitionParserRuleCall_6_0_0() { return cPropertiesPropertyDefinitionParserRuleCall_6_0_0; }

		//pseudoClasses+=PseudoClassDefinition
		public Assignment getPseudoClassesAssignment_6_1() { return cPseudoClassesAssignment_6_1; }

		//PseudoClassDefinition
		public RuleCall getPseudoClassesPseudoClassDefinitionParserRuleCall_6_1_0() { return cPseudoClassesPseudoClassDefinitionParserRuleCall_6_1_0; }

		//substructures+=Substructure
		public Assignment getSubstructuresAssignment_6_2() { return cSubstructuresAssignment_6_2; }

		//Substructure
		public RuleCall getSubstructuresSubstructureParserRuleCall_6_2_0() { return cSubstructuresSubstructureParserRuleCall_6_2_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
	}

	public class PropertyDefinitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.PropertyDefinition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cPropertyDefinitionAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cDokuAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cDokuDokuParserRuleCall_1_0 = (RuleCall)cDokuAssignment_1.eContents().get(0);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Assignment cRuleAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cRuleCSSRuleOrParserRuleCall_3_0 = (RuleCall)cRuleAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cDefaultKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cDefaultAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cDefaultCSSDefaultValueParserRuleCall_4_1_0 = (RuleCall)cDefaultAssignment_4_1.eContents().get(0);
		private final Keyword cSemicolonKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//PropertyDefinition Definition:
		//	{PropertyDefinition} doku=Doku?
		//	name=QualifiedName rule=CSSRuleOr ('default:' default=CSSDefaultValue)? ';';
		@Override public ParserRule getRule() { return rule; }

		//{PropertyDefinition} doku=Doku? name=QualifiedName rule=CSSRuleOr ('default:' default=CSSDefaultValue)? ';'
		public Group getGroup() { return cGroup; }

		//{PropertyDefinition}
		public Action getPropertyDefinitionAction_0() { return cPropertyDefinitionAction_0; }

		//doku=Doku?
		public Assignment getDokuAssignment_1() { return cDokuAssignment_1; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_1_0() { return cDokuDokuParserRuleCall_1_0; }

		//name=QualifiedName
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }

		//rule=CSSRuleOr
		public Assignment getRuleAssignment_3() { return cRuleAssignment_3; }

		//CSSRuleOr
		public RuleCall getRuleCSSRuleOrParserRuleCall_3_0() { return cRuleCSSRuleOrParserRuleCall_3_0; }

		//('default:' default=CSSDefaultValue)?
		public Group getGroup_4() { return cGroup_4; }

		//'default:'
		public Keyword getDefaultKeyword_4_0() { return cDefaultKeyword_4_0; }

		//default=CSSDefaultValue
		public Assignment getDefaultAssignment_4_1() { return cDefaultAssignment_4_1; }

		//CSSDefaultValue
		public RuleCall getDefaultCSSDefaultValueParserRuleCall_4_1_0() { return cDefaultCSSDefaultValueParserRuleCall_4_1_0; }

		//';'
		public Keyword getSemicolonKeyword_5() { return cSemicolonKeyword_5; }
	}

	public class PseudoClassDefinitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.PseudoClassDefinition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cPseudoClassDefinitionAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cDokuAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cDokuDokuParserRuleCall_1_0 = (RuleCall)cDokuAssignment_1.eContents().get(0);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNamePSEUDOTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		
		//PseudoClassDefinition:
		//	{PseudoClassDefinition} doku=Doku?
		//	name=PSEUDO;
		@Override public ParserRule getRule() { return rule; }

		//{PseudoClassDefinition} doku=Doku? name=PSEUDO
		public Group getGroup() { return cGroup; }

		//{PseudoClassDefinition}
		public Action getPseudoClassDefinitionAction_0() { return cPseudoClassDefinitionAction_0; }

		//doku=Doku?
		public Assignment getDokuAssignment_1() { return cDokuAssignment_1; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_1_0() { return cDokuDokuParserRuleCall_1_0; }

		//name=PSEUDO
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//PSEUDO
		public RuleCall getNamePSEUDOTerminalRuleCall_2_0() { return cNamePSEUDOTerminalRuleCall_2_0; }
	}

	public class CSSRuleRefElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleRef");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
		private final Assignment cDokuAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
		private final RuleCall cDokuDokuParserRuleCall_0_0_0 = (RuleCall)cDokuAssignment_0_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_0_1 = (RuleCall)cGroup_0.eContents().get(1);
		private final Keyword cLessThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cRefAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final CrossReference cRefDefinitionCrossReference_2_0 = (CrossReference)cRefAssignment_2.eContents().get(0);
		private final RuleCall cRefDefinitionQualifiedNameParserRuleCall_2_0_1 = (RuleCall)cRefDefinitionCrossReference_2_0.eContents().get(1);
		private final Keyword cGreaterThanSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//CSSRuleRef hidden():
		//	(doku=Doku WS*)? '<' ref=[Definition|QualifiedName] '>';
		@Override public ParserRule getRule() { return rule; }

		//(doku=Doku WS*)? '<' ref=[Definition|QualifiedName] '>'
		public Group getGroup() { return cGroup; }

		//(doku=Doku WS*)?
		public Group getGroup_0() { return cGroup_0; }

		//doku=Doku
		public Assignment getDokuAssignment_0_0() { return cDokuAssignment_0_0; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_0_0_0() { return cDokuDokuParserRuleCall_0_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_0_1() { return cWSTerminalRuleCall_0_1; }

		//'<'
		public Keyword getLessThanSignKeyword_1() { return cLessThanSignKeyword_1; }

		//ref=[Definition|QualifiedName]
		public Assignment getRefAssignment_2() { return cRefAssignment_2; }

		//[Definition|QualifiedName]
		public CrossReference getRefDefinitionCrossReference_2_0() { return cRefDefinitionCrossReference_2_0; }

		//QualifiedName
		public RuleCall getRefDefinitionQualifiedNameParserRuleCall_2_0_1() { return cRefDefinitionQualifiedNameParserRuleCall_2_0_1; }

		//'>'
		public Keyword getGreaterThanSignKeyword_3() { return cGreaterThanSignKeyword_3; }
	}

	public class CSSRuleDefinitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleDefinition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCSSRuleDefinitionAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cDokuAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cDokuDokuParserRuleCall_1_0 = (RuleCall)cDokuAssignment_1.eContents().get(0);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4);
		private final Assignment cRuleAssignment_4_0 = (Assignment)cAlternatives_4.eContents().get(0);
		private final RuleCall cRuleCSSRuleOrParserRuleCall_4_0_0 = (RuleCall)cRuleAssignment_4_0.eContents().get(0);
		private final Assignment cFuncAssignment_4_1 = (Assignment)cAlternatives_4.eContents().get(1);
		private final RuleCall cFuncCSSRuleFuncParserRuleCall_4_1_0 = (RuleCall)cFuncAssignment_4_1.eContents().get(0);
		private final Keyword cSemicolonKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//CSSRuleDefinition Definition hidden(WS, SL_COMMENT, ML_COMMENT):
		//	{CSSRuleDefinition} doku=Doku?
		//	name=QualifiedName '=' (rule=CSSRuleOr | func=CSSRuleFunc) ';';
		@Override public ParserRule getRule() { return rule; }

		//{CSSRuleDefinition} doku=Doku? name=QualifiedName '=' (rule=CSSRuleOr | func=CSSRuleFunc) ';'
		public Group getGroup() { return cGroup; }

		//{CSSRuleDefinition}
		public Action getCSSRuleDefinitionAction_0() { return cCSSRuleDefinitionAction_0; }

		//doku=Doku?
		public Assignment getDokuAssignment_1() { return cDokuAssignment_1; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_1_0() { return cDokuDokuParserRuleCall_1_0; }

		//name=QualifiedName
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }

		//'='
		public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; }

		//rule=CSSRuleOr | func=CSSRuleFunc
		public Alternatives getAlternatives_4() { return cAlternatives_4; }

		//rule=CSSRuleOr
		public Assignment getRuleAssignment_4_0() { return cRuleAssignment_4_0; }

		//CSSRuleOr
		public RuleCall getRuleCSSRuleOrParserRuleCall_4_0_0() { return cRuleCSSRuleOrParserRuleCall_4_0_0; }

		//func=CSSRuleFunc
		public Assignment getFuncAssignment_4_1() { return cFuncAssignment_4_1; }

		//CSSRuleFunc
		public RuleCall getFuncCSSRuleFuncParserRuleCall_4_1_0() { return cFuncCSSRuleFuncParserRuleCall_4_1_0; }

		//';'
		public Keyword getSemicolonKeyword_5() { return cSemicolonKeyword_5; }
	}

	public class CSSRuleFuncElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleFunc");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCSSRuleFuncAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameValidIDParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final RuleCall cWSTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
		private final Assignment cParamsAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cParamsCSSRuleOrParserRuleCall_4_0 = (RuleCall)cParamsAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//CSSRuleFunc CSSRule hidden(ML_COMMENT, SL_COMMENT):
		//	{CSSRuleFunc} name=ValidID '(' WS* params=CSSRuleOr ')';
		@Override public ParserRule getRule() { return rule; }

		//{CSSRuleFunc} name=ValidID '(' WS* params=CSSRuleOr ')'
		public Group getGroup() { return cGroup; }

		//{CSSRuleFunc}
		public Action getCSSRuleFuncAction_0() { return cCSSRuleFuncAction_0; }

		//name=ValidID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ValidID
		public RuleCall getNameValidIDParserRuleCall_1_0() { return cNameValidIDParserRuleCall_1_0; }

		//'('
		public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }

		//WS*
		public RuleCall getWSTerminalRuleCall_3() { return cWSTerminalRuleCall_3; }

		//params=CSSRuleOr
		public Assignment getParamsAssignment_4() { return cParamsAssignment_4; }

		//CSSRuleOr
		public RuleCall getParamsCSSRuleOrParserRuleCall_4_0() { return cParamsCSSRuleOrParserRuleCall_4_0; }

		//')'
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
	}

	public class CSSRuleOrElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleOr");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cCSSRuleXorParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Action cCSSRuleOrOrsAction_1_0 = (Action)cGroup_1.eContents().get(0);
		private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
		private final Keyword cVerticalLineKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
		private final Assignment cOrsAssignment_1_1_1 = (Assignment)cGroup_1_1.eContents().get(1);
		private final RuleCall cOrsCSSRuleXorParserRuleCall_1_1_1_0 = (RuleCall)cOrsAssignment_1_1_1.eContents().get(0);
		
		//CSSRuleOr CSSRule hidden(WS, ML_COMMENT, SL_COMMENT):
		//	CSSRuleXor ({CSSRuleOr.ors+=current} ('|' ors+=CSSRuleXor)+)?;
		@Override public ParserRule getRule() { return rule; }

		//CSSRuleXor ({CSSRuleOr.ors+=current} ('|' ors+=CSSRuleXor)+)?
		public Group getGroup() { return cGroup; }

		//CSSRuleXor
		public RuleCall getCSSRuleXorParserRuleCall_0() { return cCSSRuleXorParserRuleCall_0; }

		//({CSSRuleOr.ors+=current} ('|' ors+=CSSRuleXor)+)?
		public Group getGroup_1() { return cGroup_1; }

		//{CSSRuleOr.ors+=current}
		public Action getCSSRuleOrOrsAction_1_0() { return cCSSRuleOrOrsAction_1_0; }

		//('|' ors+=CSSRuleXor)+
		public Group getGroup_1_1() { return cGroup_1_1; }

		//'|'
		public Keyword getVerticalLineKeyword_1_1_0() { return cVerticalLineKeyword_1_1_0; }

		//ors+=CSSRuleXor
		public Assignment getOrsAssignment_1_1_1() { return cOrsAssignment_1_1_1; }

		//CSSRuleXor
		public RuleCall getOrsCSSRuleXorParserRuleCall_1_1_1_0() { return cOrsCSSRuleXorParserRuleCall_1_1_1_0; }
	}

	public class CSSRuleXorElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleXor");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cCSSRuleConcatParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Action cCSSRuleXorXorsAction_1_0 = (Action)cGroup_1.eContents().get(0);
		private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
		private final Keyword cVerticalLineVerticalLineKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
		private final Assignment cXorsAssignment_1_1_1 = (Assignment)cGroup_1_1.eContents().get(1);
		private final RuleCall cXorsCSSRuleConcatParserRuleCall_1_1_1_0 = (RuleCall)cXorsAssignment_1_1_1.eContents().get(0);
		
		//CSSRuleXor CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
		//	CSSRuleConcat ({CSSRuleXor.xors+=current} ('||' xors+=CSSRuleConcat)+)?;
		@Override public ParserRule getRule() { return rule; }

		//CSSRuleConcat ({CSSRuleXor.xors+=current} ('||' xors+=CSSRuleConcat)+)?
		public Group getGroup() { return cGroup; }

		//CSSRuleConcat
		public RuleCall getCSSRuleConcatParserRuleCall_0() { return cCSSRuleConcatParserRuleCall_0; }

		//({CSSRuleXor.xors+=current} ('||' xors+=CSSRuleConcat)+)?
		public Group getGroup_1() { return cGroup_1; }

		//{CSSRuleXor.xors+=current}
		public Action getCSSRuleXorXorsAction_1_0() { return cCSSRuleXorXorsAction_1_0; }

		//('||' xors+=CSSRuleConcat)+
		public Group getGroup_1_1() { return cGroup_1_1; }

		//'||'
		public Keyword getVerticalLineVerticalLineKeyword_1_1_0() { return cVerticalLineVerticalLineKeyword_1_1_0; }

		//xors+=CSSRuleConcat
		public Assignment getXorsAssignment_1_1_1() { return cXorsAssignment_1_1_1; }

		//CSSRuleConcat
		public RuleCall getXorsCSSRuleConcatParserRuleCall_1_1_1_0() { return cXorsCSSRuleConcatParserRuleCall_1_1_1_0; }
	}

	public class CSSRuleConcatElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleConcat");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cCSSRuleConcatWithoutSpaceParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Action cCSSRuleConcatConcAction_1_0 = (Action)cGroup_1.eContents().get(0);
		private final Assignment cConcAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cConcCSSRuleConcatWithoutSpaceParserRuleCall_1_1_0 = (RuleCall)cConcAssignment_1_1.eContents().get(0);
		
		//CSSRuleConcat CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
		//	CSSRuleConcatWithoutSpace ({CSSRuleConcat.conc+=current} conc+=CSSRuleConcatWithoutSpace+)?;
		@Override public ParserRule getRule() { return rule; }

		//CSSRuleConcatWithoutSpace ({CSSRuleConcat.conc+=current} conc+=CSSRuleConcatWithoutSpace+)?
		public Group getGroup() { return cGroup; }

		//CSSRuleConcatWithoutSpace
		public RuleCall getCSSRuleConcatWithoutSpaceParserRuleCall_0() { return cCSSRuleConcatWithoutSpaceParserRuleCall_0; }

		//({CSSRuleConcat.conc+=current} conc+=CSSRuleConcatWithoutSpace+)?
		public Group getGroup_1() { return cGroup_1; }

		//{CSSRuleConcat.conc+=current}
		public Action getCSSRuleConcatConcAction_1_0() { return cCSSRuleConcatConcAction_1_0; }

		//conc+=CSSRuleConcatWithoutSpace+
		public Assignment getConcAssignment_1_1() { return cConcAssignment_1_1; }

		//CSSRuleConcatWithoutSpace
		public RuleCall getConcCSSRuleConcatWithoutSpaceParserRuleCall_1_1_0() { return cConcCSSRuleConcatWithoutSpaceParserRuleCall_1_1_0; }
	}

	public class CSSRuleConcatWithoutSpaceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleConcatWithoutSpace");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cCSSRulePostfixParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Action cCSSRuleConcatWithoutSpaceConcAction_1_0 = (Action)cGroup_1.eContents().get(0);
		private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
		private final Keyword cTildeKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
		private final Assignment cConcAssignment_1_1_1 = (Assignment)cGroup_1_1.eContents().get(1);
		private final RuleCall cConcCSSRulePostfixParserRuleCall_1_1_1_0 = (RuleCall)cConcAssignment_1_1_1.eContents().get(0);
		
		//CSSRuleConcatWithoutSpace CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
		//	CSSRulePostfix ({CSSRuleConcatWithoutSpace.conc+=current} ('~' conc+=CSSRulePostfix)+)?;
		@Override public ParserRule getRule() { return rule; }

		//CSSRulePostfix ({CSSRuleConcatWithoutSpace.conc+=current} ('~' conc+=CSSRulePostfix)+)?
		public Group getGroup() { return cGroup; }

		//CSSRulePostfix
		public RuleCall getCSSRulePostfixParserRuleCall_0() { return cCSSRulePostfixParserRuleCall_0; }

		//({CSSRuleConcatWithoutSpace.conc+=current} ('~' conc+=CSSRulePostfix)+)?
		public Group getGroup_1() { return cGroup_1; }

		//{CSSRuleConcatWithoutSpace.conc+=current}
		public Action getCSSRuleConcatWithoutSpaceConcAction_1_0() { return cCSSRuleConcatWithoutSpaceConcAction_1_0; }

		//('~' conc+=CSSRulePostfix)+
		public Group getGroup_1_1() { return cGroup_1_1; }

		//'~'
		public Keyword getTildeKeyword_1_1_0() { return cTildeKeyword_1_1_0; }

		//conc+=CSSRulePostfix
		public Assignment getConcAssignment_1_1_1() { return cConcAssignment_1_1_1; }

		//CSSRulePostfix
		public RuleCall getConcCSSRulePostfixParserRuleCall_1_1_1_0() { return cConcCSSRulePostfixParserRuleCall_1_1_1_0; }
	}

	public class CSSRulePostfixElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRulePostfix");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cCSSRulePrimaryParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Action cCSSRulePostfixRuleAction_1_0 = (Action)cGroup_1.eContents().get(0);
		private final Assignment cCardinalityAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final Alternatives cCardinalityAlternatives_1_1_0 = (Alternatives)cCardinalityAssignment_1_1.eContents().get(0);
		private final Keyword cCardinalityAsteriskKeyword_1_1_0_0 = (Keyword)cCardinalityAlternatives_1_1_0.eContents().get(0);
		private final Keyword cCardinalityPlusSignKeyword_1_1_0_1 = (Keyword)cCardinalityAlternatives_1_1_0.eContents().get(1);
		private final Keyword cCardinalityQuestionMarkKeyword_1_1_0_2 = (Keyword)cCardinalityAlternatives_1_1_0.eContents().get(2);
		
		//CSSRulePostfix CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
		//	CSSRulePrimary ({CSSRulePostfix.rule=current} cardinality=('*' | '+' | '?'))?;
		@Override public ParserRule getRule() { return rule; }

		//CSSRulePrimary ({CSSRulePostfix.rule=current} cardinality=('*' | '+' | '?'))?
		public Group getGroup() { return cGroup; }

		//CSSRulePrimary
		public RuleCall getCSSRulePrimaryParserRuleCall_0() { return cCSSRulePrimaryParserRuleCall_0; }

		//({CSSRulePostfix.rule=current} cardinality=('*' | '+' | '?'))?
		public Group getGroup_1() { return cGroup_1; }

		//{CSSRulePostfix.rule=current}
		public Action getCSSRulePostfixRuleAction_1_0() { return cCSSRulePostfixRuleAction_1_0; }

		//cardinality=('*' | '+' | '?')
		public Assignment getCardinalityAssignment_1_1() { return cCardinalityAssignment_1_1; }

		//('*' | '+' | '?')
		public Alternatives getCardinalityAlternatives_1_1_0() { return cCardinalityAlternatives_1_1_0; }

		//'*'
		public Keyword getCardinalityAsteriskKeyword_1_1_0_0() { return cCardinalityAsteriskKeyword_1_1_0_0; }

		//'+'
		public Keyword getCardinalityPlusSignKeyword_1_1_0_1() { return cCardinalityPlusSignKeyword_1_1_0_1; }

		//'?'
		public Keyword getCardinalityQuestionMarkKeyword_1_1_0_2() { return cCardinalityQuestionMarkKeyword_1_1_0_2; }
	}

	public class CSSRuleBracketElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleBracket");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCSSRuleBracketAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cInnerAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cInnerCSSRuleOrParserRuleCall_2_0 = (RuleCall)cInnerAssignment_2.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//CSSRuleBracket CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
		//	{CSSRuleBracket} '[' inner=CSSRuleOr ']';
		@Override public ParserRule getRule() { return rule; }

		//{CSSRuleBracket} '[' inner=CSSRuleOr ']'
		public Group getGroup() { return cGroup; }

		//{CSSRuleBracket}
		public Action getCSSRuleBracketAction_0() { return cCSSRuleBracketAction_0; }

		//'['
		public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; }

		//inner=CSSRuleOr
		public Assignment getInnerAssignment_2() { return cInnerAssignment_2; }

		//CSSRuleOr
		public RuleCall getInnerCSSRuleOrParserRuleCall_2_0() { return cInnerCSSRuleOrParserRuleCall_2_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_3() { return cRightSquareBracketKeyword_3; }
	}

	public class CSSRulePrimaryElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRulePrimary");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cCSSRuleRefParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cCSSRuleBracketParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cCSSRuleLiteralParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cCSSRuleSymbolParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cCSSBaseTypeParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cCSSRuleRegexParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final Group cGroup_6 = (Group)cAlternatives.eContents().get(6);
		private final Action cCSSNumLiteralAction_6_0 = (Action)cGroup_6.eContents().get(0);
		private final Assignment cValueAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cValueINTTerminalRuleCall_6_1_0 = (RuleCall)cValueAssignment_6_1.eContents().get(0);
		
		////CSSRuleParenthesis returns CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
		////	{CSSRuleParanthesis} '(' inner=CSSRuleOr ')'
		////;
		//CSSRulePrimary CSSRule hidden(SL_COMMENT, ML_COMMENT):
		//	CSSRuleRef | CSSRuleBracket | CSSRuleLiteral | CSSRuleSymbol | CSSBaseType | CSSRuleRegex | {CSSNumLiteral} value=INT;
		@Override public ParserRule getRule() { return rule; }

		//CSSRuleRef | CSSRuleBracket | CSSRuleLiteral | CSSRuleSymbol | CSSBaseType | CSSRuleRegex | {CSSNumLiteral} value=INT
		public Alternatives getAlternatives() { return cAlternatives; }

		//CSSRuleRef
		public RuleCall getCSSRuleRefParserRuleCall_0() { return cCSSRuleRefParserRuleCall_0; }

		//CSSRuleBracket
		public RuleCall getCSSRuleBracketParserRuleCall_1() { return cCSSRuleBracketParserRuleCall_1; }

		////	CSSRuleParenthesis |
		//CSSRuleLiteral
		public RuleCall getCSSRuleLiteralParserRuleCall_2() { return cCSSRuleLiteralParserRuleCall_2; }

		//CSSRuleSymbol
		public RuleCall getCSSRuleSymbolParserRuleCall_3() { return cCSSRuleSymbolParserRuleCall_3; }

		//CSSBaseType
		public RuleCall getCSSBaseTypeParserRuleCall_4() { return cCSSBaseTypeParserRuleCall_4; }

		//CSSRuleRegex
		public RuleCall getCSSRuleRegexParserRuleCall_5() { return cCSSRuleRegexParserRuleCall_5; }

		//{CSSNumLiteral} value=INT
		public Group getGroup_6() { return cGroup_6; }

		//{CSSNumLiteral}
		public Action getCSSNumLiteralAction_6_0() { return cCSSNumLiteralAction_6_0; }

		//value=INT
		public Assignment getValueAssignment_6_1() { return cValueAssignment_6_1; }

		//INT
		public RuleCall getValueINTTerminalRuleCall_6_1_0() { return cValueINTTerminalRuleCall_6_1_0; }
	}

	public class CSSRuleRegexElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleRegex");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCSSRuleRegexAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cRegexAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cRegexREGEXTerminalRuleCall_1_0 = (RuleCall)cRegexAssignment_1.eContents().get(0);
		
		//CSSRuleRegex CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
		//	{CSSRuleRegex} regex=REGEX;
		@Override public ParserRule getRule() { return rule; }

		//{CSSRuleRegex} regex=REGEX
		public Group getGroup() { return cGroup; }

		//{CSSRuleRegex}
		public Action getCSSRuleRegexAction_0() { return cCSSRuleRegexAction_0; }

		//regex=REGEX
		public Assignment getRegexAssignment_1() { return cRegexAssignment_1; }

		//REGEX
		public RuleCall getRegexREGEXTerminalRuleCall_1_0() { return cRegexREGEXTerminalRuleCall_1_0; }
	}

	public class CSSRuleLiteralElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleLiteral");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCSSRuleLiteralAction_0 = (Action)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Assignment cDokuAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
		private final RuleCall cDokuDokuParserRuleCall_1_0_0 = (RuleCall)cDokuAssignment_1_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cValueIDTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
		
		//CSSRuleLiteral CSSRule:
		//	{CSSRuleLiteral} (doku=Doku WS*)? value=ID;
		@Override public ParserRule getRule() { return rule; }

		//{CSSRuleLiteral} (doku=Doku WS*)? value=ID
		public Group getGroup() { return cGroup; }

		//{CSSRuleLiteral}
		public Action getCSSRuleLiteralAction_0() { return cCSSRuleLiteralAction_0; }

		//(doku=Doku WS*)?
		public Group getGroup_1() { return cGroup_1; }

		//doku=Doku
		public Assignment getDokuAssignment_1_0() { return cDokuAssignment_1_0; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_1_0_0() { return cDokuDokuParserRuleCall_1_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_1_1() { return cWSTerminalRuleCall_1_1; }

		//value=ID
		public Assignment getValueAssignment_2() { return cValueAssignment_2; }

		//ID
		public RuleCall getValueIDTerminalRuleCall_2_0() { return cValueIDTerminalRuleCall_2_0; }
	}

	public class CSSRuleSymbolElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSRuleSymbol");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCSSRuleSymbolAction_0 = (Action)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Assignment cDokuAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
		private final RuleCall cDokuDokuParserRuleCall_1_0_0 = (RuleCall)cDokuAssignment_1_0.eContents().get(0);
		private final RuleCall cWSTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
		private final Assignment cSymbolAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Alternatives cSymbolAlternatives_2_0 = (Alternatives)cSymbolAssignment_2.eContents().get(0);
		private final Keyword cSymbolCommaKeyword_2_0_0 = (Keyword)cSymbolAlternatives_2_0.eContents().get(0);
		private final Keyword cSymbolPercentSignKeyword_2_0_1 = (Keyword)cSymbolAlternatives_2_0.eContents().get(1);
		
		//CSSRuleSymbol CSSRule:
		//	{CSSRuleSymbol} (doku=Doku WS*)? symbol=(',' | '%');
		@Override public ParserRule getRule() { return rule; }

		//{CSSRuleSymbol} (doku=Doku WS*)? symbol=(',' | '%')
		public Group getGroup() { return cGroup; }

		//{CSSRuleSymbol}
		public Action getCSSRuleSymbolAction_0() { return cCSSRuleSymbolAction_0; }

		//(doku=Doku WS*)?
		public Group getGroup_1() { return cGroup_1; }

		//doku=Doku
		public Assignment getDokuAssignment_1_0() { return cDokuAssignment_1_0; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_1_0_0() { return cDokuDokuParserRuleCall_1_0_0; }

		//WS*
		public RuleCall getWSTerminalRuleCall_1_1() { return cWSTerminalRuleCall_1_1; }

		//symbol=(',' | '%')
		public Assignment getSymbolAssignment_2() { return cSymbolAssignment_2; }

		//(',' | '%')
		public Alternatives getSymbolAlternatives_2_0() { return cSymbolAlternatives_2_0; }

		//','
		public Keyword getSymbolCommaKeyword_2_0_0() { return cSymbolCommaKeyword_2_0_0; }

		//'%'
		public Keyword getSymbolPercentSignKeyword_2_0_1() { return cSymbolPercentSignKeyword_2_0_1; }
	}

	public class CSSDefaultValueElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.CSSDefaultValue");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
		private final Action cCSSDefaultValueAction_0_0 = (Action)cGroup_0.eContents().get(0);
		private final Assignment cValAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
		private final RuleCall cValCSSRuleLiteralParserRuleCall_0_1_0 = (RuleCall)cValAssignment_0_1.eContents().get(0);
		private final Assignment cIvalAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
		private final RuleCall cIvalINTTerminalRuleCall_1_0 = (RuleCall)cIvalAssignment_1.eContents().get(0);
		private final Assignment cDvalAssignment_2 = (Assignment)cAlternatives.eContents().get(2);
		private final RuleCall cDvalDOUBLETerminalRuleCall_2_0 = (RuleCall)cDvalAssignment_2.eContents().get(0);
		private final Assignment cSvalAssignment_3 = (Assignment)cAlternatives.eContents().get(3);
		private final RuleCall cSvalSTRINGTerminalRuleCall_3_0 = (RuleCall)cSvalAssignment_3.eContents().get(0);
		
		//CSSDefaultValue:
		//	{CSSDefaultValue} val=CSSRuleLiteral | ival=INT | dval=DOUBLE | sval=STRING;
		@Override public ParserRule getRule() { return rule; }

		//{CSSDefaultValue} val=CSSRuleLiteral | ival=INT | dval=DOUBLE | sval=STRING
		public Alternatives getAlternatives() { return cAlternatives; }

		//{CSSDefaultValue} val=CSSRuleLiteral
		public Group getGroup_0() { return cGroup_0; }

		//{CSSDefaultValue}
		public Action getCSSDefaultValueAction_0_0() { return cCSSDefaultValueAction_0_0; }

		//val=CSSRuleLiteral
		public Assignment getValAssignment_0_1() { return cValAssignment_0_1; }

		//CSSRuleLiteral
		public RuleCall getValCSSRuleLiteralParserRuleCall_0_1_0() { return cValCSSRuleLiteralParserRuleCall_0_1_0; }

		//ival=INT
		public Assignment getIvalAssignment_1() { return cIvalAssignment_1; }

		//INT
		public RuleCall getIvalINTTerminalRuleCall_1_0() { return cIvalINTTerminalRuleCall_1_0; }

		//dval=DOUBLE
		public Assignment getDvalAssignment_2() { return cDvalAssignment_2; }

		//DOUBLE
		public RuleCall getDvalDOUBLETerminalRuleCall_2_0() { return cDvalDOUBLETerminalRuleCall_2_0; }

		//sval=STRING
		public Assignment getSvalAssignment_3() { return cSvalAssignment_3; }

		//STRING
		public RuleCall getSvalSTRINGTerminalRuleCall_3_0() { return cSvalSTRINGTerminalRuleCall_3_0; }
	}

	public class SubstructureSelectorElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.SubstructureSelector");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cSubstructureSelectorAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cSelectorNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cSelectorNameIDTerminalRuleCall_1_0 = (RuleCall)cSelectorNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cLeftSquareBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cVarAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cVarIDTerminalRuleCall_2_1_0 = (RuleCall)cVarAssignment_2_1.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
		
		//SubstructureSelector hidden():
		//	{SubstructureSelector} selectorName=ID ('[' var=ID ']')?;
		@Override public ParserRule getRule() { return rule; }

		//{SubstructureSelector} selectorName=ID ('[' var=ID ']')?
		public Group getGroup() { return cGroup; }

		//{SubstructureSelector}
		public Action getSubstructureSelectorAction_0() { return cSubstructureSelectorAction_0; }

		//selectorName=ID
		public Assignment getSelectorNameAssignment_1() { return cSelectorNameAssignment_1; }

		//ID
		public RuleCall getSelectorNameIDTerminalRuleCall_1_0() { return cSelectorNameIDTerminalRuleCall_1_0; }

		//('[' var=ID ']')?
		public Group getGroup_2() { return cGroup_2; }

		//'['
		public Keyword getLeftSquareBracketKeyword_2_0() { return cLeftSquareBracketKeyword_2_0; }

		//var=ID
		public Assignment getVarAssignment_2_1() { return cVarAssignment_2_1; }

		//ID
		public RuleCall getVarIDTerminalRuleCall_2_1_0() { return cVarIDTerminalRuleCall_2_1_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
	}

	public class SubstructureElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.Substructure");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDokuAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDokuDokuParserRuleCall_0_0 = (RuleCall)cDokuAssignment_0.eContents().get(0);
		private final Keyword cSubstructureKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cChildsAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cChildsSubstructureStyleclassParserRuleCall_4_0 = (RuleCall)cChildsAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//Substructure:
		//	doku=Doku?
		//	'substructure' name=ID '{'
		//	childs+=SubstructureStyleclass+
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//doku=Doku? 'substructure' name=ID '{' childs+=SubstructureStyleclass+ '}'
		public Group getGroup() { return cGroup; }

		//doku=Doku?
		public Assignment getDokuAssignment_0() { return cDokuAssignment_0; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_0_0() { return cDokuDokuParserRuleCall_0_0; }

		//'substructure'
		public Keyword getSubstructureKeyword_1() { return cSubstructureKeyword_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//childs+=SubstructureStyleclass+
		public Assignment getChildsAssignment_4() { return cChildsAssignment_4; }

		//SubstructureStyleclass
		public RuleCall getChildsSubstructureStyleclassParserRuleCall_4_0() { return cChildsSubstructureStyleclassParserRuleCall_4_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class SubstructureStyleclassElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.SubstructureStyleclass");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDokuAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDokuDokuParserRuleCall_0_0 = (RuleCall)cDokuAssignment_0.eContents().get(0);
		private final Assignment cElementAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cElementElementDefinitionCrossReference_1_0 = (CrossReference)cElementAssignment_1.eContents().get(0);
		private final RuleCall cElementElementDefinitionQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cElementElementDefinitionCrossReference_1_0.eContents().get(1);
		private final Keyword cStyleclassKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cSelectorsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cSelectorsSubstructureSelectorParserRuleCall_3_0 = (RuleCall)cSelectorsAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cChildsAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cChildsSubstructureStyleclassParserRuleCall_4_1_0 = (RuleCall)cChildsAssignment_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		
		//SubstructureStyleclass:
		//	doku=Doku?
		//	element=[ElementDefinition|QualifiedName] 'styleclass' selectors+=SubstructureSelector+ ('{'
		//	childs+=SubstructureStyleclass+ '}')?;
		@Override public ParserRule getRule() { return rule; }

		//doku=Doku? element=[ElementDefinition|QualifiedName] 'styleclass' selectors+=SubstructureSelector+ ('{'
		//childs+=SubstructureStyleclass+ '}')?
		public Group getGroup() { return cGroup; }

		//doku=Doku?
		public Assignment getDokuAssignment_0() { return cDokuAssignment_0; }

		//Doku
		public RuleCall getDokuDokuParserRuleCall_0_0() { return cDokuDokuParserRuleCall_0_0; }

		//element=[ElementDefinition|QualifiedName]
		public Assignment getElementAssignment_1() { return cElementAssignment_1; }

		//[ElementDefinition|QualifiedName]
		public CrossReference getElementElementDefinitionCrossReference_1_0() { return cElementElementDefinitionCrossReference_1_0; }

		//QualifiedName
		public RuleCall getElementElementDefinitionQualifiedNameParserRuleCall_1_0_1() { return cElementElementDefinitionQualifiedNameParserRuleCall_1_0_1; }

		//'styleclass'
		public Keyword getStyleclassKeyword_2() { return cStyleclassKeyword_2; }

		//selectors+=SubstructureSelector+
		public Assignment getSelectorsAssignment_3() { return cSelectorsAssignment_3; }

		//SubstructureSelector
		public RuleCall getSelectorsSubstructureSelectorParserRuleCall_3_0() { return cSelectorsSubstructureSelectorParserRuleCall_3_0; }

		//('{' childs+=SubstructureStyleclass+ '}')?
		public Group getGroup_4() { return cGroup_4; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//childs+=SubstructureStyleclass+
		public Assignment getChildsAssignment_4_1() { return cChildsAssignment_4_1; }

		//SubstructureStyleclass
		public RuleCall getChildsSubstructureStyleclassParserRuleCall_4_1_0() { return cChildsSubstructureStyleclassParserRuleCall_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4_2() { return cRightCurlyBracketKeyword_4_2; }
	}
	
	
	private final CssExtensionElements pCssExtension;
	private final TerminalRule tPSEUDO;
	private final TerminalRule tID;
	private final TerminalRule tJDOC;
	private final TerminalRule tML_COMMENT;
	private final TerminalRule tSL_COMMENT;
	private final ImportElements pImport;
	private final ValidIDElements pValidID;
	private final QualifiedNameElements pQualifiedName;
	private final QualifiedNameWithWildCardElements pQualifiedNameWithWildCard;
	private final PackageDefinitionElements pPackageDefinition;
	private final DokuElements pDoku;
	private final CSSBaseTypeElements pCSSBaseType;
	private final CSSTypeElements pCSSType;
	private final ElementDefinitionElements pElementDefinition;
	private final PropertyDefinitionElements pPropertyDefinition;
	private final PseudoClassDefinitionElements pPseudoClassDefinition;
	private final CSSRuleRefElements pCSSRuleRef;
	private final CSSRuleDefinitionElements pCSSRuleDefinition;
	private final CSSRuleFuncElements pCSSRuleFunc;
	private final CSSRuleOrElements pCSSRuleOr;
	private final CSSRuleXorElements pCSSRuleXor;
	private final CSSRuleConcatElements pCSSRuleConcat;
	private final CSSRuleConcatWithoutSpaceElements pCSSRuleConcatWithoutSpace;
	private final CSSRulePostfixElements pCSSRulePostfix;
	private final CSSRuleBracketElements pCSSRuleBracket;
	private final CSSRulePrimaryElements pCSSRulePrimary;
	private final CSSRuleRegexElements pCSSRuleRegex;
	private final CSSRuleLiteralElements pCSSRuleLiteral;
	private final CSSRuleSymbolElements pCSSRuleSymbol;
	private final CSSDefaultValueElements pCSSDefaultValue;
	private final SubstructureSelectorElements pSubstructureSelector;
	private final SubstructureElements pSubstructure;
	private final SubstructureStyleclassElements pSubstructureStyleclass;
	private final TerminalRule tINT;
	private final TerminalRule tDOUBLE;
	private final TerminalRule tREGEX;
	
	private final Grammar grammar;

	private final TerminalsGrammarAccess gaTerminals;

	@Inject
	public CssExtDslGrammarAccess(GrammarProvider grammarProvider,
		TerminalsGrammarAccess gaTerminals) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaTerminals = gaTerminals;
		this.pCssExtension = new CssExtensionElements();
		this.tPSEUDO = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.PSEUDO");
		this.tID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.ID");
		this.tJDOC = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.JDOC");
		this.tML_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.ML_COMMENT");
		this.tSL_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.SL_COMMENT");
		this.pImport = new ImportElements();
		this.pValidID = new ValidIDElements();
		this.pQualifiedName = new QualifiedNameElements();
		this.pQualifiedNameWithWildCard = new QualifiedNameWithWildCardElements();
		this.pPackageDefinition = new PackageDefinitionElements();
		this.pDoku = new DokuElements();
		this.pCSSBaseType = new CSSBaseTypeElements();
		this.pCSSType = new CSSTypeElements();
		this.pElementDefinition = new ElementDefinitionElements();
		this.pPropertyDefinition = new PropertyDefinitionElements();
		this.pPseudoClassDefinition = new PseudoClassDefinitionElements();
		this.pCSSRuleRef = new CSSRuleRefElements();
		this.pCSSRuleDefinition = new CSSRuleDefinitionElements();
		this.pCSSRuleFunc = new CSSRuleFuncElements();
		this.pCSSRuleOr = new CSSRuleOrElements();
		this.pCSSRuleXor = new CSSRuleXorElements();
		this.pCSSRuleConcat = new CSSRuleConcatElements();
		this.pCSSRuleConcatWithoutSpace = new CSSRuleConcatWithoutSpaceElements();
		this.pCSSRulePostfix = new CSSRulePostfixElements();
		this.pCSSRuleBracket = new CSSRuleBracketElements();
		this.pCSSRulePrimary = new CSSRulePrimaryElements();
		this.pCSSRuleRegex = new CSSRuleRegexElements();
		this.pCSSRuleLiteral = new CSSRuleLiteralElements();
		this.pCSSRuleSymbol = new CSSRuleSymbolElements();
		this.pCSSDefaultValue = new CSSDefaultValueElements();
		this.pSubstructureSelector = new SubstructureSelectorElements();
		this.pSubstructure = new SubstructureElements();
		this.pSubstructureStyleclass = new SubstructureStyleclassElements();
		this.tINT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.INT");
		this.tDOUBLE = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.DOUBLE");
		this.tREGEX = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.css.cssext.CssExtDsl.REGEX");
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("org.eclipse.fx.ide.css.cssext.CssExtDsl".equals(grammar.getName())) {
				return grammar;
			}
			List<Grammar> grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	@Override
	public Grammar getGrammar() {
		return grammar;
	}
	

	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//CssExtension:
	//	imports+=Import*
	//	packageDef=PackageDefinition?
	//	//	packageDef=PackageDefinition?
	//	//	rule=CSSRuleSet
	//;
	public CssExtensionElements getCssExtensionAccess() {
		return pCssExtension;
	}
	
	public ParserRule getCssExtensionRule() {
		return getCssExtensionAccess().getRule();
	}

	//terminal PSEUDO:
	//	':' !' ' ID;
	public TerminalRule getPSEUDORule() {
		return tPSEUDO;
	} 

	//terminal ID:
	//	('a'..'z' | 'A'..'Z' | '_' | '-') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9' | '-')*;
	public TerminalRule getIDRule() {
		return tID;
	} 

	//terminal JDOC:
	//	'/**'->'*/';
	public TerminalRule getJDOCRule() {
		return tJDOC;
	} 

	//terminal ML_COMMENT:
	//	'/*' !'*'->'*/';
	public TerminalRule getML_COMMENTRule() {
		return tML_COMMENT;
	} 

	//terminal SL_COMMENT:
	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
	public TerminalRule getSL_COMMENTRule() {
		return tSL_COMMENT;
	} 

	//Import:
	//	'import' importedNamespace=QualifiedNameWithWildCard;
	public ImportElements getImportAccess() {
		return pImport;
	}
	
	public ParserRule getImportRule() {
		return getImportAccess().getRule();
	}

	//ValidID:
	//	ID;
	public ValidIDElements getValidIDAccess() {
		return pValidID;
	}
	
	public ParserRule getValidIDRule() {
		return getValidIDAccess().getRule();
	}

	//QualifiedName:
	//	ValidID (=> '.' ValidID)*;
	public QualifiedNameElements getQualifiedNameAccess() {
		return pQualifiedName;
	}
	
	public ParserRule getQualifiedNameRule() {
		return getQualifiedNameAccess().getRule();
	}

	//QualifiedNameWithWildCard:
	//	QualifiedName ('.' '*')?;
	public QualifiedNameWithWildCardElements getQualifiedNameWithWildCardAccess() {
		return pQualifiedNameWithWildCard;
	}
	
	public ParserRule getQualifiedNameWithWildCardRule() {
		return getQualifiedNameWithWildCardAccess().getRule();
	}

	//PackageDefinition:
	//	(doku=Doku WS*)?
	//	'package' name=QualifiedName
	//	'{' (rules+=CSSRuleDefinition | subpackages+=PackageDefinition | elements+=ElementDefinition)*
	//	'}';
	public PackageDefinitionElements getPackageDefinitionAccess() {
		return pPackageDefinition;
	}
	
	public ParserRule getPackageDefinitionRule() {
		return getPackageDefinitionAccess().getRule();
	}

	//Doku:
	//	content=JDOC;
	public DokuElements getDokuAccess() {
		return pDoku;
	}
	
	public ParserRule getDokuRule() {
		return getDokuAccess().getRule();
	}

	//CSSBaseType CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
	//	CSSType;
	public CSSBaseTypeElements getCSSBaseTypeAccess() {
		return pCSSBaseType;
	}
	
	public ParserRule getCSSBaseTypeRule() {
		return getCSSBaseTypeAccess().getRule();
	}

	//CSSType hidden(SL_COMMENT, ML_COMMENT):
	//	{CSSRangedIntType} (doku=Doku WS*)? type='@INT' '(' WS* from=INT WS* '->' WS* to=INT WS* ')' | {CSSRangedDoubleType}
	//	(doku=Doku WS*)? type='@NUM' '(' WS* from=DOUBLE WS* '->' WS* to=DOUBLE WS* ')' | (doku=Doku WS*)? (type='@INT' WS* |
	//	type='@NUM' WS* | type='@STRING' WS* | type='@URL' WS*);
	public CSSTypeElements getCSSTypeAccess() {
		return pCSSType;
	}
	
	public ParserRule getCSSTypeRule() {
		return getCSSTypeAccess().getRule();
	}

	////CSSRangedType returns CSSRule hidden(SL_COMMENT, ML_COMMENT):
	////	
	////;
	//ElementDefinition:
	//	{ElementDefinition} doku=Doku?
	//	name=QualifiedName ('extends' super+=[ElementDefinition|QualifiedName] (','
	//	super+=[ElementDefinition|QualifiedName])*)? ('styleclass' styleclass=ID)?
	//	'{' (properties+=PropertyDefinition | pseudoClasses+=PseudoClassDefinition | substructures+=Substructure)*
	//	'}';
	public ElementDefinitionElements getElementDefinitionAccess() {
		return pElementDefinition;
	}
	
	public ParserRule getElementDefinitionRule() {
		return getElementDefinitionAccess().getRule();
	}

	//PropertyDefinition Definition:
	//	{PropertyDefinition} doku=Doku?
	//	name=QualifiedName rule=CSSRuleOr ('default:' default=CSSDefaultValue)? ';';
	public PropertyDefinitionElements getPropertyDefinitionAccess() {
		return pPropertyDefinition;
	}
	
	public ParserRule getPropertyDefinitionRule() {
		return getPropertyDefinitionAccess().getRule();
	}

	//PseudoClassDefinition:
	//	{PseudoClassDefinition} doku=Doku?
	//	name=PSEUDO;
	public PseudoClassDefinitionElements getPseudoClassDefinitionAccess() {
		return pPseudoClassDefinition;
	}
	
	public ParserRule getPseudoClassDefinitionRule() {
		return getPseudoClassDefinitionAccess().getRule();
	}

	//CSSRuleRef hidden():
	//	(doku=Doku WS*)? '<' ref=[Definition|QualifiedName] '>';
	public CSSRuleRefElements getCSSRuleRefAccess() {
		return pCSSRuleRef;
	}
	
	public ParserRule getCSSRuleRefRule() {
		return getCSSRuleRefAccess().getRule();
	}

	//CSSRuleDefinition Definition hidden(WS, SL_COMMENT, ML_COMMENT):
	//	{CSSRuleDefinition} doku=Doku?
	//	name=QualifiedName '=' (rule=CSSRuleOr | func=CSSRuleFunc) ';';
	public CSSRuleDefinitionElements getCSSRuleDefinitionAccess() {
		return pCSSRuleDefinition;
	}
	
	public ParserRule getCSSRuleDefinitionRule() {
		return getCSSRuleDefinitionAccess().getRule();
	}

	//CSSRuleFunc CSSRule hidden(ML_COMMENT, SL_COMMENT):
	//	{CSSRuleFunc} name=ValidID '(' WS* params=CSSRuleOr ')';
	public CSSRuleFuncElements getCSSRuleFuncAccess() {
		return pCSSRuleFunc;
	}
	
	public ParserRule getCSSRuleFuncRule() {
		return getCSSRuleFuncAccess().getRule();
	}

	//CSSRuleOr CSSRule hidden(WS, ML_COMMENT, SL_COMMENT):
	//	CSSRuleXor ({CSSRuleOr.ors+=current} ('|' ors+=CSSRuleXor)+)?;
	public CSSRuleOrElements getCSSRuleOrAccess() {
		return pCSSRuleOr;
	}
	
	public ParserRule getCSSRuleOrRule() {
		return getCSSRuleOrAccess().getRule();
	}

	//CSSRuleXor CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
	//	CSSRuleConcat ({CSSRuleXor.xors+=current} ('||' xors+=CSSRuleConcat)+)?;
	public CSSRuleXorElements getCSSRuleXorAccess() {
		return pCSSRuleXor;
	}
	
	public ParserRule getCSSRuleXorRule() {
		return getCSSRuleXorAccess().getRule();
	}

	//CSSRuleConcat CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
	//	CSSRuleConcatWithoutSpace ({CSSRuleConcat.conc+=current} conc+=CSSRuleConcatWithoutSpace+)?;
	public CSSRuleConcatElements getCSSRuleConcatAccess() {
		return pCSSRuleConcat;
	}
	
	public ParserRule getCSSRuleConcatRule() {
		return getCSSRuleConcatAccess().getRule();
	}

	//CSSRuleConcatWithoutSpace CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
	//	CSSRulePostfix ({CSSRuleConcatWithoutSpace.conc+=current} ('~' conc+=CSSRulePostfix)+)?;
	public CSSRuleConcatWithoutSpaceElements getCSSRuleConcatWithoutSpaceAccess() {
		return pCSSRuleConcatWithoutSpace;
	}
	
	public ParserRule getCSSRuleConcatWithoutSpaceRule() {
		return getCSSRuleConcatWithoutSpaceAccess().getRule();
	}

	//CSSRulePostfix CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
	//	CSSRulePrimary ({CSSRulePostfix.rule=current} cardinality=('*' | '+' | '?'))?;
	public CSSRulePostfixElements getCSSRulePostfixAccess() {
		return pCSSRulePostfix;
	}
	
	public ParserRule getCSSRulePostfixRule() {
		return getCSSRulePostfixAccess().getRule();
	}

	//CSSRuleBracket CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
	//	{CSSRuleBracket} '[' inner=CSSRuleOr ']';
	public CSSRuleBracketElements getCSSRuleBracketAccess() {
		return pCSSRuleBracket;
	}
	
	public ParserRule getCSSRuleBracketRule() {
		return getCSSRuleBracketAccess().getRule();
	}

	////CSSRuleParenthesis returns CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
	////	{CSSRuleParanthesis} '(' inner=CSSRuleOr ')'
	////;
	//CSSRulePrimary CSSRule hidden(SL_COMMENT, ML_COMMENT):
	//	CSSRuleRef | CSSRuleBracket | CSSRuleLiteral | CSSRuleSymbol | CSSBaseType | CSSRuleRegex | {CSSNumLiteral} value=INT;
	public CSSRulePrimaryElements getCSSRulePrimaryAccess() {
		return pCSSRulePrimary;
	}
	
	public ParserRule getCSSRulePrimaryRule() {
		return getCSSRulePrimaryAccess().getRule();
	}

	//CSSRuleRegex CSSRule hidden(WS, SL_COMMENT, ML_COMMENT):
	//	{CSSRuleRegex} regex=REGEX;
	public CSSRuleRegexElements getCSSRuleRegexAccess() {
		return pCSSRuleRegex;
	}
	
	public ParserRule getCSSRuleRegexRule() {
		return getCSSRuleRegexAccess().getRule();
	}

	//CSSRuleLiteral CSSRule:
	//	{CSSRuleLiteral} (doku=Doku WS*)? value=ID;
	public CSSRuleLiteralElements getCSSRuleLiteralAccess() {
		return pCSSRuleLiteral;
	}
	
	public ParserRule getCSSRuleLiteralRule() {
		return getCSSRuleLiteralAccess().getRule();
	}

	//CSSRuleSymbol CSSRule:
	//	{CSSRuleSymbol} (doku=Doku WS*)? symbol=(',' | '%');
	public CSSRuleSymbolElements getCSSRuleSymbolAccess() {
		return pCSSRuleSymbol;
	}
	
	public ParserRule getCSSRuleSymbolRule() {
		return getCSSRuleSymbolAccess().getRule();
	}

	//CSSDefaultValue:
	//	{CSSDefaultValue} val=CSSRuleLiteral | ival=INT | dval=DOUBLE | sval=STRING;
	public CSSDefaultValueElements getCSSDefaultValueAccess() {
		return pCSSDefaultValue;
	}
	
	public ParserRule getCSSDefaultValueRule() {
		return getCSSDefaultValueAccess().getRule();
	}

	//SubstructureSelector hidden():
	//	{SubstructureSelector} selectorName=ID ('[' var=ID ']')?;
	public SubstructureSelectorElements getSubstructureSelectorAccess() {
		return pSubstructureSelector;
	}
	
	public ParserRule getSubstructureSelectorRule() {
		return getSubstructureSelectorAccess().getRule();
	}

	//Substructure:
	//	doku=Doku?
	//	'substructure' name=ID '{'
	//	childs+=SubstructureStyleclass+
	//	'}';
	public SubstructureElements getSubstructureAccess() {
		return pSubstructure;
	}
	
	public ParserRule getSubstructureRule() {
		return getSubstructureAccess().getRule();
	}

	//SubstructureStyleclass:
	//	doku=Doku?
	//	element=[ElementDefinition|QualifiedName] 'styleclass' selectors+=SubstructureSelector+ ('{'
	//	childs+=SubstructureStyleclass+ '}')?;
	public SubstructureStyleclassElements getSubstructureStyleclassAccess() {
		return pSubstructureStyleclass;
	}
	
	public ParserRule getSubstructureStyleclassRule() {
		return getSubstructureStyleclassAccess().getRule();
	}

	//terminal INT returns ecore::EInt:
	//	'-'? '0'..'9'+;
	public TerminalRule getINTRule() {
		return tINT;
	} 

	//terminal DOUBLE returns ecore::EDouble:
	//	'-'? '0'..'9'* '.' '0'..'9'+;
	public TerminalRule getDOUBLERule() {
		return tDOUBLE;
	} 

	//terminal REGEX: // TODO maybe directly return a Pattern
	//	'$' ('a'..'z' | 'A'..'Z' | '0'..'9' | '-' | ',' | '.' | '?' | '\'' | ':' | '\"' | '>' | '<' | '/' | '_' | '=' | ';' |
	//	'(' | ')' | '&' | '!' | '#' | '%' | '*' | '+' | '[' | ']' | '{' | '}')+ '$';
	public TerminalRule getREGEXRule() {
		return tREGEX;
	} 

	//terminal STRING:
	//	'"' ('\\' . | !('\\' | '"'))* '"' |
	//	"'" ('\\' . | !('\\' | "'"))* "'";
	public TerminalRule getSTRINGRule() {
		return gaTerminals.getSTRINGRule();
	} 

	//terminal WS:
	//	' ' | '\t' | '\r' | '\n'+;
	public TerminalRule getWSRule() {
		return gaTerminals.getWSRule();
	} 

	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaTerminals.getANY_OTHERRule();
	} 
}
